package test02.instance;

import entity.Student;

import java.lang.reflect.Constructor;

/**
 * 反射 API 操作 - 实例化对象
 *
 * @Author zqx
 * @Date 2024-03-26
 */
public class MainTest02 {
    public static void main(String[] args) throws Exception {
        // 第一：获取类的 Class 对象
        Class<?> clazz = Student.class;

        // 第二：实例化对象 - 构造方法实例化对象
        // 1.获取构造方法对象
        // public Student(String name, int age, float weight)
        // public Student(String name, Float weight) {
        Constructor<?> constructor = clazz.getConstructor(String.class, Float.class);

        // 2.基于构造方法对象，实例化对象
        Object obj = constructor.newInstance("李四", 80F);
        // 第三：操作
        if(obj instanceof Student) {
            Student stu = (Student)obj ;
            System.out.println(stu.getName());
            System.out.println(stu.getWeight());
        }
    }
}
